home *** CD-ROM | disk | FTP | other *** search
/ Softdisk Supreme / Softdisk Supreme.iso / pc / DSK Files / 0-49 / SD010b.dsk / LABEL PRINTER V1.1.bas < prev    next >
BASIC Source File  |  2003-06-12  |  7KB  |  178 lines

  1. 10  REM   *****************
  2. 20  REM   *               *
  3. 30  REM   * LABEL PRINTER *
  4. 40  REM   *               *
  5. 50  REM   *      BY       *
  6. 60  REM   *               *
  7. 70  REM   *  RON FOLDEN   *
  8. 80  REM   *               *
  9. 90  REM   *****************
  10. 100  REM 
  11. 110  REM  VERSION 1.1, REVISED 1/20/82, APPLESOFT, PARSHALL, N.D., 58770
  12. 113 PN$ = "LABEL PRINTER V1.1"
  13. 115  PRINT  CHR$(4);"PR#0"
  14. 120  FOR A = 768 TO 798: READ B: POKE A,B: NEXT A
  15. 130  DATA  169,16,141,242,3,169,3,141,243,3,73,165,141,244,3,96,104,168,104,166,214,154,72,152,72,32,234,3,76,18,212
  16. 140  ONERR  GOTO 10580
  17. 150  DIM SM$(20),IN$(20)
  18. 160  GOTO 8000
  19. 999  REM   ******************
  20. 1000  REM  *** ENTER COPY ***
  21. 1001  REM  ******************
  22. 1010 START = 1:UPPER = 1:LEFT = 1
  23. 1020  HOME : IF MENU = 1  AND Q = 2  THEN EDIT = 1
  24. 1030  GOSUB 7500: POKE 51,161
  25. 1040  HOME : VTAB (VT -1): HTAB (39 -CHARS): FOR DASH = 1 TO CHARS: PRINT "-";: NEXT DASH
  26. 1045  VTAB (VT -1): HTAB (39 -(CHARS/2)): PRINT "+"
  27. 1050  FOR LINE = UPPER TO LOWER: VTAB (VT +LINE -1): HTAB (38 -CHARS): PRINT "!";: HTAB (39): PRINT "!": NEXT LINE
  28. 1060  HTAB (39 -CHARS): FOR DASH = 1 TO CHARS: PRINT "-";: NEXT DASH
  29. 1065  IF EDIT = 1  THEN  GOSUB 3000
  30. 1070  VTAB (VT): FOR LINE = UPPER TO LOWER: IF EDIT < >1  THEN IN$(LINE) = " "
  31. 1080  HTAB (39): PRINT "!";: HTAB (38 -CHARS)
  32. 1090 IN$ = "": CALL  -662
  33. 1100  FOR I = 512 TO 767
  34. 1110 X =  PEEK(I) -128
  35. 1120  IF X = 13  THEN 1150
  36. 1130 IN$ = IN$ + CHR$(X)
  37. 1140 IN$(LINE) = IN$: NEXT I
  38. 1150  VTAB (VT +LINE -1): HTAB (39 -CHARS): PRINT IN$(LINE);: HTAB (39): PRINT "!": NEXT LINE
  39. 1160 RT = 21: GOSUB 6200:EDIT = 0: GOTO 8000
  40. 1999  REM  ************************
  41. 2000  REM  *** PRINT TEST LABEL ***
  42. 2001  REM  ************************ 
  43. 2010 TEST = 1: GOTO 4000
  44. 2999  REM  *************************
  45. 3000  REM  *** EDIT COPY ROUTINE ***
  46. 3001  REM  *************************
  47. 3010  VTAB (VT)
  48. 3020  FOR LINE = UPPER TO LOWER
  49. 3030  HTAB (39 -CHARS): PRINT IN$(LINE)
  50. 3040  NEXT LINE
  51. 3050  VTAB (21): HTAB (11): PRINT "ENTER NEW LINE OR": PRINT : HTAB (6): PRINT "PRESS <RETURN> FOR NEXT LINE"
  52. 3060  RETURN 
  53. 3999  REM  ********************
  54. 4000  REM  *** PRINT LABELS ***
  55. 4001  REM  ********************
  56. 4010 Y = CHARS +3
  57. 4020  HOME : VTAB (10): INPUT "HOW MANY LABELS ACROSS PAGE? ";A$:ROWS =  VAL(A$)
  58. 4030  IF TEST = 1  THEN FINISH = 1: GOTO 4060
  59. 4040  PRINT : INPUT "HOW MANY LABELS WOULD YOU LIKE? ";A$:FINISH =  VAL(A$)
  60. 4050 FINISH =  INT((FINISH/ROWS) +.5)
  61. 4060 RIGHT = ROWS
  62. 4070  GOSUB 6000: GOSUB 7000: GOSUB 6100:TEST = 0: GOTO 8000
  63. 4999  REM  ***************************
  64. 5000  REM  *** ENDING ROUTINE MENU ***
  65. 5001  REM  ***************************
  66. 5005  ONERR  GOTO 10580
  67. 5010 SM = 3
  68. 5020 SM$(1) = "RESTART PROGRAM"
  69. 5030 SM$(2) = "BOOT ANOTHER DISK"
  70. 5040 SM$(3) = "QUIT"
  71. 5050 MN$ = " END OF PROGRAM ":X$ = "X": GOSUB 10500
  72. 5060  ON Q GOTO 8000,9000,30000
  73. 5999  REM  **************************
  74. 6000  REM  *** INITIALIZE PRINTER ***
  75. 6001  REM  **************************
  76. 6010  IF IDS = 1  THEN 6040
  77. 6020  HOME : VTAB (10): INPUT "WHICH SLOT IS PRINTER CARD IN? ";A$:SLOT =  VAL(A$)
  78. 6025  IF SLOT <1  OR SLOT >7  THEN  PRINT  CHR$(7): GOTO 6020
  79. 6030  PRINT : HTAB (8): PRINT "ALIGN PAPER FOR PRINTOUT":IDS = 1
  80. 6040 RT = 17: GOSUB 6200
  81. 6050  PRINT  CHR$(4);"PR#";SL
  82. 6060  RETURN 
  83. 6099  REM  ************************
  84. 6100  REM  *** TURN PRINTER OFF ***
  85. 6101  REM  ************************ 
  86. 6110  PRINT  CHR$(4);"PR#0"
  87. 6120  RETURN 
  88. 6199  REM  ****************************
  89. 6200  REM  *** PRESS RETURN ROUTINE ***
  90. 6201  REM  **************************** 
  91. 6210  POKE  -16368,0: VTAB (RT): CALL  -958: HTAB (8): PRINT "PRESS ";: INVERSE : PRINT "<RETURN>";: NORMAL : PRINT " TO CONTINUE"
  92. 6220  IF  PEEK( -16384) < >141  THEN 6220
  93. 6230  POKE  -16368,0: RETURN 
  94. 6999  REM : ********************
  95. 7000  REM : *** PRINT LABELS ***
  96. 7001  REM : ********************
  97. 7010  FOR LABEL = START TO FINISH
  98. 7020  FOR LINE = UPPER TO LOWER
  99. 7030  FOR COLUMN = LEFT TO RIGHT
  100. 7040  PRINT IN$(LINE); SPC( Y - LEN(IN$(LINE)))
  101. 7050  NEXT COLUMN: PRINT 
  102. 7060  NEXT LINE: PRINT 
  103. 7065  IF (FINISH -LABEL) <ROWS  THEN RIGHT = RIGHT -1
  104. 7070  NEXT LABEL: RETURN 
  105. 7499  REM  ******************
  106. 7500  REM  *** LABEL SIZE ***
  107. 7501  REM  ******************
  108. 7505  IF EDIT = 1  THEN  RETURN 
  109. 7510 MN$ = "LABEL SIZE"
  110. 7520 SM = 3
  111. 7530 SM$(1) = "15/16 X 3-1/2"
  112. 7540 SM$(2) = "1-7/16 X 4"
  113. 7550 SM$(3) = "2-7/8 X 3-7/8"
  114. 7560 SEL$ = "WHAT SIZE ARE YOUR LABELS?"
  115. 7570 MENU = 2: GOSUB 10500
  116. 7580 SIZE = Q
  117. 7590  IF SIZE = 1  THEN LOWER = 5:CHARS = 34:VT = 9: RETURN 
  118. 7600  IF SIZE = 2  THEN LOWER = 8:CHARS = 37:VT = 7: RETURN 
  119. 7610  IF SIZE = 3  THEN LOWER = 17:CHARS = 36:VT = 2: RETURN 
  120. 7999  REM  ****************************
  121. 8000  REM  *** INITIALIZE MAIN MENU ***
  122. 8001  REM  ****************************
  123. 8010 SM = 5
  124. 8020 MN$ = "LABEL PRINTER"
  125. 8030 SM$(1) = "ENTER COPY"
  126. 8040 SM$(2) = "EDIT COPY"
  127. 8050 SM$(3) = "PRINT TEST LABEL"
  128. 8060 SM$(4) = "PRINT LABELS"
  129. 8070 SM$(5) = "QUIT"
  130. 8080 X$ = "X"
  131. 8090 SEL$ = "< ENTER YOUR SELECTION >"
  132. 8100 MENU = 1
  133. 8110  GOSUB 10500
  134. 8120  ON Q GOTO 1000,1000,2000,4000,5000
  135. 8999  REM  **************
  136. 9000  REM  *** REBOOT ***
  137. 9001  REM  **************
  138. 9010 D$ =  CHR$(13) + CHR$(4):ERR =  PEEK(222)
  139. 9020  ONERR  GOTO 9070
  140. 9030  HOME : VTAB (8): HTAB (11): PRINT "INSERT ANOTHER DISK": PRINT : HTAB (19): PRINT "THEN"
  141. 9040 RT = 12: GOSUB 6200
  142. 9050  PRINT D$;"VERIFY ";PN$
  143. 9060  HOME : VTAB (10): HTAB (9): PRINT "THIS IS THE SAME DISK!!":RT = 12: GOSUB 6200: POKE 216,0: GOTO 5000
  144. 9070  PRINT D$;"PR#6"
  145. 10499  REM  ********************
  146. 10500  REM  *** MENU ROUTINE ***
  147. 10501  REM  ******************** 
  148. 10502  IF MENU < >1 GOTO 10515
  149. 10503  GOTO 10506
  150. 10504  FOR X = 1 TO 40: PRINT X$;: NEXT X: RETURN 
  151. 10506  HOME : GOSUB 10504
  152. 10508  FOR X = 2 TO 21: VTAB (X): PRINT X$;: HTAB (40): PRINT X$: NEXT X
  153. 10510  VTAB (22): GOSUB 10504
  154. 10515  VTAB (3): HTAB (20 - LEN(MN$)/2): PRINT MN$
  155. 10518  IF MENU < >1 GOTO 10525
  156. 10520  PRINT : GOSUB 10504
  157. 10525  VTAB (7): HTAB (4): PRINT "YOUR SELECTIONS ARE:"
  158. 10530 V = 9:HH = 11:HT = 14: FOR I = 1 TO SM
  159. 10535  VTAB (V +I): HTAB (HH): PRINT I;". ";SM$(I): NEXT I
  160. 10537  PRINT : PRINT : HTAB (20 - LEN(SEL$)/2): PRINT SEL$
  161. 10540 Q =  PEEK( -16384): IF Q <127  THEN 10540
  162. 10545  POKE  -16368,0:Q = Q -176: IF Q <1  OR Q >SM  THEN  PRINT  CHR$(7);: GOTO 10540
  163. 10550  VTAB (V +Q): HTAB (HT): INVERSE : PRINT SM$(Q)
  164. 10555  NORMAL :QQ =  PEEK( -16384): IF QQ <127  THEN 10555
  165. 10560  POKE  -16368,0: IF QQ = 141  THEN 10575
  166. 10565 QQ = QQ -176: IF QQ <1  OR QQ >SM  THEN  PRINT  CHR$(7): GOTO 10550
  167. 10570  VTAB (V +Q): HTAB (HT): PRINT SM$(Q):Q = QQ: GOTO 10550
  168. 10575  RETURN 
  169. 10580  GOSUB 6100
  170. 10584 EN =  PEEK(222):LN =  PEEK(218) + PEEK(219) *256
  171. 10585  IF EN = 255  THEN  PRINT  CHR$(7);: POKE  -16368,0
  172. 10590  IF LN = 10540  THEN  GOTO 10540
  173. 10595  IF LN = 10555  THEN  GOTO 10555
  174. 20000  HOME : VTAB (10): PRINT "ERROR NO. "EN: PRINT "IN LINE NO. "LN: END 
  175. 29999  REM  ***********
  176. 30000  REM  *** END ***
  177. 30001  REM  ***********
  178. 30010  HOME : VTAB (10): HTAB (15): PRINT "NORMAL EOJ": VTAB (23): END